package ieco.uccimpl;

import ieco.daoimpl.InscriptionDaoImpl;
import ieco.daoimpl.OptionnelDaoImpl;
import ieco.domaine.Inscription;
import ieco.domaine.Optionnel;
import ieco.ucc.GestionDesOptionnels;

import java.util.Iterator;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

@Stateless
@SuppressWarnings("serial")
public class GestionDesOptionnelsImpl implements GestionDesOptionnels {

	@EJB
	OptionnelDaoImpl optionnelDao;

	@EJB
	InscriptionDaoImpl inscriptionDao;
	
	@Override
	public boolean enregistrerOptionnel(Optionnel optionnel) {
		return (optionnelDao.enregistrer(optionnel) == null) ? false : true;
	}

	@Override
	public Optionnel getOptionnelViaId(int id) {
		return optionnelDao.findOptionnel(id);
	}

	@Override
	public List<Optionnel> visualiserTousLesCoursOptionnels() {
		return optionnelDao.findTousOptionnels();
	}

	@Override
	public boolean modifierOptionnel(List<Optionnel> optionnels) {
		Iterator<Optionnel> optionnelsIter = optionnels.iterator();
		while(optionnelsIter.hasNext()){
			Optionnel opSuivant = optionnelsIter.next();
			optionnelDao.mettreAJour(opSuivant);
		}
		return true;
	}

	@Override
	public boolean supprimerOptionnel(int idOptionnel) {
		Iterator<Inscription> inscriptions = inscriptionDao.findAllInscriptionsPourOptionnel(idOptionnel).iterator();
		while(inscriptions.hasNext()){
			Inscription inscription = inscriptions.next();
			System.out.println(inscription.getAnnee());
			inscriptionDao.deleteInscription(inscription.getAnnee(),inscription.getEtudiant().getMatricule(),inscription.getOptionnel().getId());
		}
		optionnelDao.deleteOptionnel(idOptionnel);
		return true;
	}

}
